﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;
using com.creditos.util.liclUtil;
using com.creditos.be.liclUtil;
using liclSolcred.Views;


using com.creditos.be.liclSolcred;

public partial class solcred_popups_FormsPopupRegistroParametrosBasicos : CreditosPaseBase,IFormsParametrosBasicosView
{
    private liclSolcred.Views.FormsParametrosBasicosPresenter oPresenter = new FormsParametrosBasicosPresenter();
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Expires = 0;
        Response.CacheControl = "no-cache";
        Page.Header.Controls.Add(new LiteralControl(@"<base target=""_self"" />"));
        
        if (!IsPostBack)
        {            
            
            oPresenter.View = this;
            oPresenter.Load();
            if (int.Parse((string)Session["Accion"]) == 2)
            {
                ParametrosBasicosBE oParametro = new ParametrosBasicosBE();
                oParametro.CodPlantilla = int.Parse((string)Session["CodigoPlantilla"]);
                oParametro.CodTipoIntegrante = int.Parse((string)Session["CodigoIntegrante"]);                
                oParametro.CodVariableDetalle = int.Parse((string)Session["CodigoVariable"]);                
                oParametro.Accion = 2;
                oPresenter.ObtenerParametroBasicoVariable(oParametro);
            }
        }
        oPresenter.View = this;
    }

    protected override void DefineHandlers()
    {
        btnAceptar.Click += new EventHandler(btnAceptar_Click);
        btnCancelar.Click += new EventHandler(btnCancelar_Click);
    }

    void btnAceptar_Click(object sender, EventArgs e)
    {

        decimal intrangoInicial = txtRangoInicial.Text == string.Empty ? 0 : decimal.Parse(txtRangoInicial.Text);
        decimal intRangoFinal = txtRangoFinal.Text == string.Empty ? 0 : decimal.Parse(txtRangoFinal.Text);
        if (intrangoInicial > intRangoFinal)
        {
            MostrarMensaje("El rango final no puede ser menor al inicial",1);
        }
        else
        {

            string codigoPlantilla = Request.QueryString["codigoPlantilla"];
            ParametrosBasicosBE oParametrosBasicos = new ParametrosBasicosBE();
            oParametrosBasicos.CodPlantilla = int.Parse(codigoPlantilla);
            oParametrosBasicos.CodTipoIntegrante = int.Parse(ddlTipoIntegrante.SelectedValue);
            oParametrosBasicos.DescripcionTipoIntegrante = ddlTipoIntegrante.SelectedItem.Text.Trim();
            oParametrosBasicos.Codigo = int.Parse(ddlVariable.SelectedValue);
            oParametrosBasicos.Descripcion = ddlVariable.SelectedItem.Text.Trim();
            oParametrosBasicos.CodTipoAnalisis = int.Parse(ddlTipoEvaluacion.SelectedValue);
            oParametrosBasicos.DescripcionTipoAnalisis = ddlTipoEvaluacion.SelectedItem.Text.Trim();
            oParametrosBasicos.RangoInicial = txtRangoInicial.Text == string.Empty ? 0 : decimal.Parse(txtRangoInicial.Text);
            oParametrosBasicos.RangoFinal = txtRangoFinal.Text == string.Empty ? 0 : decimal.Parse(txtRangoFinal.Text);
            oParametrosBasicos.FlagObligatorio = chbObligatorio.Checked ? 1 : 0;
            oParametrosBasicos.DescripcionFlagObligatorio = chbObligatorio.Checked ? "SI" : "NO";
            oParametrosBasicos.FlagEditable = chbEditable.Checked ? 1 : 0;
            oParametrosBasicos.DescripcionFlagEditable = chbEditable.Checked ? "SI" : "NO";
            oParametrosBasicos.FlagActivo = chbActivo.Checked ? 1 : 0;
            oParametrosBasicos.DescripcionFlagActivo = chbActivo.Checked ? "SI" : "NO";
            oParametrosBasicos.CodResultado = int.Parse(ddlResultado.SelectedValue);
            oParametrosBasicos.DescripcionResultado = ddlResultado.SelectedItem.Text.Trim();

            if (int.Parse((string)Session["Accion"]) == 2)
            {
                oParametrosBasicos.Accion = 2;
               
            }
            ListaParametrosBasicos.Add(oParametrosBasicos);

            if (int.Parse((string)Session["Accion"]) == 2)
            {
                oParametrosBasicos.DescripcionPlantilla= (string)Session["DescripcionPlantilla"];
                if (oParametrosBasicos.DescripcionPlantilla == string.Empty) { MostrarMensajeError("Falta llenar la descripcion de la plantilla"); }
                else
                {
                    oPresenter.ActualizarParametroBasico(oParametrosBasicos);

                    oPresenter.ActualizarParametroBasicoVariable(ListaParametrosBasicos);
                    MostrarMensaje("Registro modificado exitósamente", 0);
                }
                ListaParametrosBasicos.Clear();
                
            }
            else
            {
                MostrarMensaje("Registro añadido exitósamente", 0);
            }


          
        }
    }

    void btnCancelar_Click(object sender, EventArgs e)
    {        
        btnCancelar.Attributes.Add("OnClick", "window.close();");
    }

    #region IFormsParametrosBasicosView Members

    public void CargarParametros(List<ParametroBE> lstParametros)
    {
        if (lstParametros.Count > 0)
        {
            switch (lstParametros[0].CodigoTabla)
            {               
                case 973:
                    UIBindable.Bind(ddlTipoIntegrante, lstParametros);
                    break;
                case 976:
                    UIBindable.Bind(ddlTipoEvaluacion, lstParametros);
                    break;
                case 983:
                    UIBindable.Bind(ddlResultado, lstParametros);
                    break;
            }
        }
    }

    public void CargarVariables(List<ParametrosBasicosBE> lstParametros)
    {
        if (lstParametros.Count > 0)
        {
            UIBindable.Bind(ddlVariable, lstParametros);
        }
    }

    public void MostrarMensajeError(string Mensaje)
    {
        Master.MostrarMensaje(Mensaje, 0);
    }


    public void CargarResumentParametrosBasicos(List<ParametrosBasicosBE> lstResumen)
    {
        throw new NotImplementedException();
    }

    public void ObtenerParametroBasico(List<ParametrosBasicosBE> lst)
    {
        throw new NotImplementedException();
    }

    public void ObtenerParametroBasicoVariable(List<ParametrosBasicosBE> lst)
    {
        if (lst.Count > 0)
        {            
            ddlTipoIntegrante.SelectedValue = lst[0].CodTipoIntegrante.ToString();
            ddlVariable.SelectedValue = lst[0].CodVariableDetalle.ToString();
            ddlTipoEvaluacion.SelectedValue = lst[0].CodTipoAnalisis.ToString();
            ddlResultado.SelectedValue = lst[0].CodResultado.ToString();
            txtRangoInicial.Text = lst[0].RangoInicial.ToString();
            txtRangoFinal.Text = lst[0].RangoFinal.ToString();
            if (lst[0].FlagObligatorio == 1) chbObligatorio.Checked = true; else chbObligatorio.Checked = false;
            if (lst[0].FlagEditable == 1) chbEditable.Checked = true; else chbEditable.Checked = false;
            if (lst[0].FlagActivo == 1) chbActivo.Checked = true; else chbActivo.Checked = false;            
        }
    }

    #endregion


    public List<ParametrosBasicosBE> ListaParametrosBasicos
    {
        get
        {
            if (Session["ListaParametrosBasicos"] == null)
            {
                Session["ListaParametrosBasicos"] = new List<ParametrosBasicosBE>();
            }
            return (List<ParametrosBasicosBE>)Session["ListaParametrosBasicos"];
        }
        set { Session["ListaParametrosBasicos"] = value; }

    }

    public void MostrarMensaje(string strMensaje,int intTipo)
    {
        lblMensaje.Text = strMensaje;

        if (intTipo == 0)
        {
            lblMensaje.ForeColor = System.Drawing.Color.Blue;
        }
        else if (intTipo == 1)
        {
            lblMensaje.ForeColor = System.Drawing.Color.Red;
        }
    }
}
